import { baseUrl } from "@/utils/config.js";
const prefix = "/file";

export function uploadFile(tempFilePath) {
  return new Promise((resolve, reject) => {
    uni.uploadFile({
      url: baseUrl + prefix + "/upload",
      filePath: tempFilePath,
      name: "file",
      timeout: 30000,
      
      success: (res) => {
        try {
          const result = JSON.parse(res.data);
          console.log("后端返回完整数据：", result);

          // 1. 网络层面成功
          if (res.statusCode >= 200 && res.statusCode < 300) {
            // 2. 业务层面成功（code=200）
            if (result.code === 200) {
              // 3. 提取URL（后端返回的字段是url，直接使用）
              const imageUrl = result.url; 
              if (imageUrl) {
                // URL存在，成功返回
                resolve(imageUrl); 
              } else {
                // URL不存在的错误提示（与后端成功信息区分）
                reject(new Error("上传成功，但未返回头像URL")); 
              }
            } else {
              // 业务错误（此时msg才是错误信息）
              reject(new Error(result.msg || "上传失败"));
            }
          } else {
            // 网络错误
            reject(new Error(`网络错误：${res.statusCode}`));
          }
        } catch (err) {
          reject(new Error("后端返回格式异常"));
        }
      },
      fail: (err) => {
        reject(new Error(`上传失败：${err.errMsg}`));
      }
    });
  });
}